// 		"resolveJsonModule": true
import data from './data.json'
console.log(data)

// （3）使用素材提供的json数据，分析映射关系 / 创建命名空间
// （5）通过class 定义树形菜单基类Tree
interface ITree {
  root: any
}

class Tree<T> {
  root: any
  constructor(options: T) {
    // this.root = []
  }
  init() {}

  // 递归
  callbackRender() {}

  render() {}
}
/***
 *
 * const a = [
 *   {
 *
 *   }
 * ]
 *
 *
 */

let t = new Tree<ITree>({ root: [] })

// （6）根据提供数据，正确设置Tree的泛型接口  ITree
// （7）合理设置Tree的私有属性、方法
// （8）Tree通过option接收参数，保存root根节点容器
// （9）通过设置option默认参数，默认展开一级菜单的子项
// （10）options 传参与默认参数的合并处理
// （11）定义init函数完成素材提供数据的二次处理
// （12）利用递归实现动态创建节点树方法
// （13）定义render函数实现树形菜单递归渲染
// （14）利用代码片段插入页面根节点root中，减少频繁dom操作
// （15）实现树形菜单展开、收起功能
// （16）设置选中、未选中状态、高亮
// （17）实现功能即可，不要求排版
// （18）页面引入Tree.js完成功能初始化
